
(() => { // webpackBootstrap
  "use strict";
  var modules = {
    // 这就是一个普通的对象  属性名是引入文件的 对应的文件路径
    "./src/a.js": (module, __exports, require) => {

      require.r(__exports);// 把普通对象转成模块化对象
      require.d(__exports, {
        "a": () => (a),
        "b": () => (b)
      });
      let a = 100;
      let b = 200;
    },

    "./src/b.js":
      ((module, __exports, require) => {
        require.r(__exports);
        require.d(__exports, {
          "add": () => (add)
        });
        function add(a, b) {
          return a + b
        }
      }),

    "./src/index.js": (module, __exports, require) => {
      require.r(__exports); // 普通对象转成了模块对象
      var aaa = require("./src/a.js");
      debugger
      var bbb = require("./src/b.js");
      console.log(bbb.add(aaa.a, aaa.b))


    }

  };
  /************************************************************************/
  // The module cache
  // 这是一个缓存对象 用来缓存 加载过的模块的
  var cache_obj = {};

  // The require function
  function require(moduleId) { //"./src/index.js"  './src/a.js'
    // 这个函数的返回值 是一个模块对应的exports属性
    // moduleId 就是我们的 文件路径  './src/a.js'
    var cachedModule = cache_obj[moduleId];
    if (cachedModule !== undefined) {
      return cachedModule.exports;
    }
    var module = cache_obj[moduleId] = {
      exports: {}
    };

    modules[moduleId](module, module.exports, require);
    return module.exports;
  }


  // define getter functions for harmony exports
  //  d函数就是给 exports 添加了一些属性
  require.d = (exports, definition) => {
    for (var key in definition) {
      if (require.o(definition, key) && !require.o(exports, key)) {
        //  这个if判断是一个优化的内容 就是看看以前是不是给exports 添加过属性了
        Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
      }
    }
  };

  // o 函数就是用来判断 一个属性 是否是一个对象的私有属性
  require.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))

  // define __esModule on exports
  require.r = (exports) => {
    if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
      Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
    }
    Object.defineProperty(exports, '__esModule', { value: true });
  };


  var __exports = require("./src/index.js");

})()
  ;